package selenium.page;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @Author quan
 * @Description 多层级框架iFrame的使用：点击click按钮
 * 解决办法：https://blog.51cto.com/u_15077536/4340697
 * @Date 2023/8/17 16:02
 */
public class Demo2_IFrame {
    public static void main(String[] args) {
        a02();
    }
    //对应Page中的序号
    private static void a02(){
        //1、创建浏览器驱动
        WebDriver webDriver = new ChromeDriver();
        //2、找到网页打开
        webDriver.get("http://localhost:63342/TestClass/src/main/Page/test02.html?_ijt=id3t0m69rupdc57qf2ab70ssl5&_ij_reload=RELOAD_ON_SAVE");
        //3、找到click按钮点击
        //目标在iFrame标签下，直接用findElement会报错
//        webDriver.findElement(By.cssSelector("body > div > div > a")).click(); //报错
        //但是目标元素不在iFrame标签下可以直接获取
//        String s3 = webDriver.findElement(By.cssSelector("body > div > div > h3")).getText();
//        System.out.println(s3);//可以打印出 frame
        //当目标在IFrame下的正确写法
        webDriver.switchTo().frame("f1");//因为查找的click在iFrame的f1下，所以写的f1
        webDriver.findElement(By.cssSelector("body > div > div > a")).click();
    }
}
